Criar uma formula no crystal chamada REFERENCIA por exemplo com este cdigo:
Nota: Os campos FACTURA.FAC_NUMERO e FACTURA.FAC_TOTAL_FACT devem ser substitudos pelos campos com o nmero da factura e o total a pagar da aplicao a utilizar.

stringvar entidade:="10559";  
//NOTA IMPORTANTE: Utilizar a entidade fornecida pela IFTHEN que pode no ser esta

stringvar subentidade:="497"; 
//NOTA IMPORTANTE: Utilizar a subentidade fornecida pela IFTHEN e no esta que  apenas um exemplo

stringvar ref:="";
stringVar st_aux := entidade & subentidade & 
                   right(totext({FACTURAS.FAC_NUMERO},"0000",0,"",""),4) & 
                   totext({FACTURAS.FAC_TOTAL_FACT}*100,"00000000",0, "","");
// parti do principio que o campo com o numero da factura  numrico, converti-o para texto 
// e fui buscar apenas os 4 digitos da direita 
// Multipliquei o total da factura por 100 e considerei os 8 caracteres e converti para texto

//Clculo do checkdigit
numberVar checkdigits := 0;
checkdigits:=checkdigits+val(mid(st_aux,1,1))*51;
checkdigits:=checkdigits+val(mid(st_aux,2,1))*73;
checkdigits:=checkdigits+val(mid(st_aux,3,1))*17;
checkdigits:=checkdigits+val(mid(st_aux,4,1))*89;
checkdigits:=checkdigits+val(mid(st_aux,5,1))*38;
checkdigits:=checkdigits+val(mid(st_aux,6,1))*62;
checkdigits:=checkdigits+val(mid(st_aux,7,1))*45;
checkdigits:=checkdigits+val(mid(st_aux,8,1))*53;
checkdigits:=checkdigits+val(mid(st_aux,9,1))*15;
checkdigits:=checkdigits+val(mid(st_aux,10,1))*50;
checkdigits:=checkdigits+val(mid(st_aux,11,1))*5;
checkdigits:=checkdigits+val(mid(st_aux,12,1))*49;
checkdigits:=checkdigits+val(mid(st_aux,13,1))*34;
checkdigits:=checkdigits+val(mid(st_aux,14,1))*81;
checkdigits:=checkdigits+val(mid(st_aux,15,1))*76;
checkdigits:=checkdigits+val(mid(st_aux,16,1))*27;
checkdigits:=checkdigits+val(mid(st_aux,17,1))*90;
checkdigits:=checkdigits+val(mid(st_aux,18,1))*9;
checkdigits:=checkdigits+val(mid(st_aux,19,1))*30;
checkdigits:=checkdigits+val(mid(st_aux,20,1))*3;

checkdigits:=98-(checkdigits mod 97;);

//clculo final da referncia
ref:=mid(st_aux,6,7) + totext(checkdigits,"00");

ref
